using System;
using UnityEngine;
public interface PlayerContext : Person
{
    public enum EnumPlayer
    {
        BillRizer,
        LanceBean,
    }

    public enum EnumState
    {
        None = 0,
        // 跳跃翻滚
        Roll,
        // 行走
        Land,
        // 下落
        Fall,
        // 趴下
        Prostrate,
        // 落水水花
        Splash,
        // 落水
        FallInWater,
        // 潜水
        HideInWater,
        // 上岸
        GoingAshore,
        // 死亡
        Die,
        // 3D向前
        Idle,
        // 3D被电击
        ElectricShock,
        // 3D向前跑
        GoAhead,
    }

    public bool Is3DLevel();
    public bool Is3DBossLevel();

    public EnumState GetPlayerState();

    public Vector2 UpperBodyOffset();
    public Vector2 LowerBodyOffset();
    public Vector2 RollBodyOffset();
    public Vector2 FallBodyOffset();
    public Vector2 ProstrateBodyOffset();
    public Vector2 InWaterBodyOffset();
    public Vector2 RippleBodyOffset();
    public Vector2 DiedBodyOffset();
    public Vector2 ForwardBodyOffset();
    public Vector2 ForwardProstrateBodyOffset();
    public Vector2 ElectricShockBodyOffset();
    public Vector2 GoAheadBodyOffset();


    public Vector2 UpperBodyPosition();
    public Vector2 LowerBodyPosition();
    public Vector2 RollBodyPosition();
    public Vector2 FallBodyPosition();
    public Vector2 ProstrateBodyPosition();
    public Vector2 InWaterBodyPosition();
    public Vector2 RippleBodyPosition();
    public Vector2 DiedBodyPosition();
    public Vector2 ForwardBodyPosition();
    public Vector2 ForwardProstrateBodyPosition();
    public Vector2 ElectricShockBodyPosition();
    public Vector2 GoAheadBodyPosition();


    public CameraLevel GetLevel();
    public Camera3DLevel Get3DLevel();

    public ABullet.BulletType GetBulletType();

    public bool IsOnGround();
    public PlayerContext.EnumPlayer PlayerIdentity { get; }

    public Vector3 Position { get; set; }
    public Vector2 LookAt { get; set; }
    public Vector2 KeyDirection { get; }

}
